home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Languages / MPW Oberon 2.1168 / OInterfaces / Devices.mod < prev    next >
Encoding:
Text File  |  1995-08-10  |  11.7 KB  |  305 lines  |  [TEXT/MPS ]

  1. (*
  2.      File:        Devices.mod
  3.  
  4.      Contains:    Device Manager Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Package:    Universal Interfaces 2.0 in “MPW Latest” on ETO #17
  8.  
  9.      Copyright:    © 1984-1995 by Apple Computer, Inc.
  10.                  All rights reserved.
  11.  
  12.      Bugs?:        If you find a problem with this file, use the Apple Bug Reporter
  13.                  stack.  Include the file and version information (from above)
  14.                  in the problem description and send to:
  15.                      Internet:    apple.bugs.applelink.apple.com
  16.                      AppleLink:    APPLE.BUGS
  17.  
  18. *)
  19.  
  20. (*$IF UNDEFINED OLDROUTINENAMES*)
  21. (*$SET OLDROUTINENAMES FALSE*)
  22. (*$END*)
  23. (*$TAGS-*)
  24. (*$CALLING PASCAL*)
  25. MODULE Devices;
  26.  
  27. IMPORT SYSTEM, Types, Quickdraw, OSUtils, Files, Events, Dialogs;
  28.  
  29. (* $PUSH*)
  30. (* $ALIGN MAC68K*)
  31. (* $LibExport+*)
  32.  
  33. CONST
  34.     chooserInitMsg*                = 11;                            (* the user selected this device package *)
  35.     newSelMsg*                    = 12;                            (* the user made new device selections *)
  36.     fillListMsg*                    = 13;                            (* fill the device list with choices *)
  37.     getSelMsg*                    = 14;                            (* mark one or more choices as selected *)
  38.     selectMsg*                    = 15;                            (* the user made a selection *)
  39.     deselectMsg*                    = 16;                            (* the user canceled a selection *)
  40.     terminateMsg*                = 17;                            (* allows device package to clean up *)
  41.     buttonMsg*                    = 19;                            (* the user selected a button *)
  42.  
  43. (* Values of the 'caller' parameter to a Chooser device package *)
  44.     chooserID*                    = 1;
  45.  
  46. (* Values of the 'message' parameter to a Control Panel LONG("cdev") *)
  47.     initDev*                        = 0;                            (*Sound.Time for cdev to initialize itself*)
  48.     hitDev*                        = 1;                            (*Hit on one of my items*)
  49.     closeDev*                    = 2;                            (*Close yourself*)
  50.     nulDev*                        = 3;                            (*Null event*)
  51.     updateDev*                    = 4;                            (*Update event*)
  52.     activDev*                    = 5;                            (*Activate event*)
  53.     deactivDev*                    = 6;                            (*Deactivate event*)
  54.     keyEvtDev*                    = 7;                            (*Key down/auto key*)
  55.     macDev*                        = 8;                            (*Decide whether or not to show up*)
  56.     undoDev*                        = 9;
  57.     cutDev*                        = 10;
  58.     copyDev*                        = 11;
  59.     pasteDev*                    = 12;
  60.     clearDev*                    = 13;
  61.     cursorDev*                    = 14;
  62.  
  63. (* Special values a Control Panel LONG("cdev") can return *)
  64.     cdevGenErr*                    = -1;                            (*General error; gray cdev w/o alert*)
  65.     cdevMemErr*                    = 0;                            (*Memory shortfall; alert user please*)
  66.     cdevResErr*                    = 1;                            (*Couldn't get a needed resource; alert*)
  67.     cdevUnset*                    = 3;                            (* cdevValue is initialized to this*)
  68.  
  69. (* Values of the 'message' parameter to a Monitor LONG("mntr") *)
  70.     initMsg*                        = 1;                            (*initialization*)
  71.     okMsg*                        = 2;                            (*user clicked OK button*)
  72.     cancelMsg*                    = 3;                            (*user clicked Cancel button*)
  73.     hitMsg*                        = 4;                            (*user clicked control in Options dialog*)
  74.     nulMsg*                        = 5;                            (*periodic event*)
  75.     updateMsg*                    = 6;                            (*update event*)
  76.     activateMsg*                    = 7;                            (*not used*)
  77.     deactivateMsg*                = 8;                            (*not used*)
  78.     keyEvtMsg*                    = 9;                            (*keyboard event*)
  79.     superMsg*                    = 10;                            (*show superuser controls*)
  80.     normalMsg*                    = 11;                            (*show only normal controls*)
  81.     startupMsg*                    = 12;                            (*code has been loaded*)
  82.  
  83. (* control codes for DeskAccessories *)
  84.     goodbye*                        = -1;                            (* heap being reinitialized *)
  85.     killCode*                    = 1;                            (* KillIO requested *)
  86.     accEvent*                    = 64;                            (* handle an event *)
  87.     accRun*                        = 65;                            (* time for periodic action *)
  88.     accCursor*                    = 66;                            (* change cursor shape *)
  89.     accMenu*                        = 67;                            (* handle menu item *)
  90.     accUndo*                        = 68;                            (* handle undo command *)
  91.     accCut*                        = 70;                            (* handle cut command *)
  92.     accCopy*                        = 71;                            (* handle copy command *)
  93.     accPaste*                    = 72;                            (* handle paste command *)
  94.     accClear*                    = 73;                            (* handle clear command *)
  95.  
  96. (* Control/Status Call Codes *)
  97.     drvStsCode*                    = 8;                            (* status call code for drive status *)
  98.     ejectCode*                    = 7;                            (* control call eject code *)
  99.     tgBuffCode*                    = 8;                            (* set tag buffer code *)
  100.  
  101. (* miscellaneous Device Manager constants *)
  102.     ioInProgress*                = 1;                            (* predefined value of ioResult while I/O is pending *)
  103.     aRdCmd*                        = 2;                            (* low byte of ioTrap for Read calls *)
  104.     aWrCmd*                        = 3;                            (* low byte of ioTrap for Write calls *)
  105.     asyncTrpBit*                    = 10;                            (* trap word modifier *)
  106.     noQueueBit*                    = 9;                            (* trap word modifier *)
  107.  
  108. (* flags used in the driver header and device control entry *)
  109.     dReadEnable*                    = 0;                            (* set if driver responds to read requests *)
  110.     dWritEnable*                    = 1;                            (* set if driver responds to write requests *)
  111.     dCtlEnable*                    = 2;                            (* set if driver responds to control requests *)
  112.     dStatEnable*                    = 3;                            (* set if driver responds to status requests *)
  113.     dNeedGoodBye*                = 4;                            (* set if driver needs time for performing periodic tasks *)
  114.     dNeedTime*                    = 5;                            (* set if driver needs time for performing periodic tasks *)
  115.     dNeedLock*                    = 6;                            (* set if driver must be locked in memory as soon as it is opened *)
  116.     dNeedLockMask*                = $4000;                        (* set if driver must be locked in memory as soon as it is opened *)
  117.     dNeedTimeMask*                = $2000;                        (* set if driver needs time for performing periodic tasks *)
  118.     dNeedGoodByeMask*            = $1000;                        (* set if driver needs to be called before the application heap is initialized *)
  119.     dStatEnableMask*                = $0800;                        (* set if driver responds to status requests *)
  120.     dCtlEnableMask*                = $0400;                        (* set if driver responds to control requests *)
  121.     dWritEnableMask*                = $0200;                        (* set if driver responds to write requests *)
  122.     dReadEnableMask*                = $0100;                        (* set if driver responds to read requests *)
  123.  
  124. (* run-time flags used in the device control entry *)
  125.     dOpened*                        = 5;                            (* driver is open *)
  126.     dRAMBased*                    = 6;                            (* dCtlDriver is a handle (1) or pointer (0) *)
  127.     drvrActive*                    = 7;                            (* driver is currently processing a request *)
  128.     drvrActiveMask*                = $0080;                        (* driver is currently processing a request *)
  129.     dRAMBasedMask*                = $0040;                        (* dCtlDriver is a handle (1) or pointer (0) *)
  130.     dOpenedMask*                    = $0020;                        (* driver is open *)
  131.  
  132.  
  133. TYPE
  134.     DRVRHeader* = RECORD
  135.         drvrFlags*:                INTEGER;
  136.         drvrDelay*:                INTEGER;
  137.         drvrEMask*:                INTEGER;
  138.         drvrMenu*:                INTEGER;
  139.         drvrOpen*:                INTEGER;
  140.         drvrPrime*:                INTEGER;
  141.         drvrCtl*:                INTEGER;
  142.         drvrStatus*:                INTEGER;
  143.         drvrClose*:                INTEGER;
  144.         drvrName*:                ARRAY 1 (*ΔΔ[0..0]ΔΔ*) OF Types.SInt8; (* unsigned char *)
  145.     END;
  146.  
  147.     DRVRHeaderPtr* = POINTER TO DRVRHeader;
  148.     DRVRHeaderHandle* = HANDLE TO DRVRHeader (*ΔΔ POINTER TO DRVRHeaderPtr*);
  149.  
  150.     DCtlEntry* = RECORD
  151.         dCtlDriver*:                Types.Ptr;
  152.         dCtlFlags*:                INTEGER;
  153.         dCtlQHdr*:                OSUtils.QHdr;
  154.         dCtlPosition*:            LONGINT;
  155.         dCtlStorage*:            Types.Handle;
  156.         dCtlRefNum*:                INTEGER;
  157.         dCtlCurTicks*:            LONGINT;
  158.         dCtlWindow*:                Quickdraw.WindowPtr;
  159.         dCtlDelay*:                INTEGER;
  160.         dCtlEMask*:                INTEGER;
  161.         dCtlMenu*:                INTEGER;
  162.     END;
  163.  
  164.     DCtlPtr* = POINTER TO DCtlEntry;
  165.     DCtlHandle* = HANDLE TO DCtlEntry (*ΔΔ POINTER TO DCtlPtr*);
  166.  
  167.     AuxDCE* = (*ΔΔPACKEDΔΔ*) RECORD
  168.         dCtlDriver*:                Types.Ptr;
  169.         dCtlFlags*:                INTEGER;
  170.         dCtlQHdr*:                OSUtils.QHdr;
  171.         dCtlPosition*:            LONGINT;
  172.         dCtlStorage*:            Types.Handle;
  173.         dCtlRefNum*:                INTEGER;
  174.         dCtlCurTicks*:            LONGINT;
  175.         dCtlWindow*:                Quickdraw.GrafPtr;
  176.         dCtlDelay*:                INTEGER;
  177.         dCtlEMask*:                INTEGER;
  178.         dCtlMenu*:                INTEGER;
  179.         dCtlSlot*:                Types.SInt8;
  180.         dCtlSlotId*:                Types.SInt8;
  181.         dCtlDevBase*:            LONGINT;
  182.         dCtlOwner*:                Types.Ptr;
  183.         dCtlExtDev*:                Types.SInt8;
  184.         fillByte*:                Types.SInt8;
  185.         dCtlNodeID*:                Types.UInt32;
  186.     END;
  187.  
  188.     AuxDCEPtr* = POINTER TO AuxDCE;
  189.     AuxDCEHandle* = HANDLE TO AuxDCE (*ΔΔ POINTER TO AuxDCEPtr*);
  190.  
  191.     ControlPanelDefProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (message: INTEGER; item: INTEGER; numItems: INTEGER; cPanelID: INTEGER; VAR theEvent: Events.EventRecord; cdevValue: LONGINT; cpDialog: Dialogs.DialogPtr): LONGINT;
  192.     ControlPanelDefUPP* = Types.UniversalProcPtr;
  193.  
  194. CONST
  195.     uppControlPanelDefProcInfo* = $000FEAB0; (* PROCEDURE (2 byte param, 2 byte param, 2 byte param, 2 byte param, 4 byte param, 4 byte param, 4 byte param): 4 byte result; *)
  196.  
  197. PROCEDURE NewControlPanelDefProc*(userRoutine: ControlPanelDefProcPtr): ControlPanelDefUPP;
  198.     (*$IF NOT GENERATINGCFM *)
  199.     INLINE PASCAL $2E9F;
  200.     (*$END*)
  201.  
  202. PROCEDURE CallControlPanelDefProc*(message: INTEGER; item: INTEGER; numItems: INTEGER; cPanelID: INTEGER; VAR theEvent: Events.EventRecord; cdevValue: LONGINT; cpDialog: Dialogs.DialogPtr; userRoutine: ControlPanelDefUPP): LONGINT;
  203.     (*$IF NOT GENERATINGCFM*)
  204.     INLINE PASCAL $205F, $4E90;
  205.     (*$END*)
  206.  
  207. PROCEDURE GetDCtlEntry*(refNum: INTEGER): DCtlHandle;
  208.     EXTERNAL PASCAL;
  209. (*
  210.     SetChooserAlert used to simply set a bit in a low-mem global
  211.     to tell the Chooser not to display its warning message when
  212.     the printer is changed. However, under MultiFinder and System 7,
  213.     this low-mem is swapped out when a layer change occurs, and the
  214.     Chooser never sees the change. It is obsolete, and completely
  215.     unsupported on the PowerPC. 68K apps can still call it if they
  216.     wish.
  217. *)
  218. (*$IF OLDROUTINENAMES AND NOT GENERATINGCFM *)
  219. PROCEDURE SetChooserAlert*(f: BOOLEAN): BOOLEAN;
  220.     EXTERNAL PASCAL;
  221. (*$END*)
  222. (*
  223.   Note*: DrvrInstall() is no longer supported, becuase it never really worked anyways.
  224.           There will soon be a DriverInstall() which does the right thing.
  225.  
  226.         DrvrRemove has been renamed to DriverRemove.  But, InterfaceLib for PowerPC
  227.         still exports DrvrRemove, so a macro is used to map the new name to old.
  228.  
  229. *)
  230. PROCEDURE DrvrRemove*(refNum: INTEGER): Types.OSErr;
  231.     (*$IF NOT GENERATINGCFM*)
  232.     INLINE PASCAL $301F, $A03E, $3E80;
  233.     (*$END*)
  234. (*$IF GENERATING68K *)
  235. PROCEDURE DriverRemove*(refNum: INTEGER): Types.OSErr;
  236.     (*$IF NOT GENERATINGCFM*)
  237.     INLINE PASCAL $301F, $A03E, $3E80;
  238.     (*$END*)
  239. (*$END*)
  240. PROCEDURE OpenDriver*(name: Types.ConstStr255Param; VAR drvrRefNum: INTEGER): Types.OSErr;
  241.     EXTERNAL PASCAL;
  242. PROCEDURE CloseDriver*(refNum: INTEGER): Types.OSErr;
  243.     EXTERNAL PASCAL;
  244. PROCEDURE Control*(refNum: INTEGER; csCode: INTEGER; csParamPtr: (*ΔΔUNIVΔΔ*) Types.Ptr): Types.OSErr;
  245.     EXTERNAL PASCAL;
  246. PROCEDURE Status*(refNum: INTEGER; csCode: INTEGER; csParamPtr: (*ΔΔUNIVΔΔ*) Types.Ptr): Types.OSErr;
  247.     EXTERNAL PASCAL;
  248. PROCEDURE KillIO*(refNum: INTEGER): Types.OSErr;
  249.     EXTERNAL PASCAL;
  250. PROCEDURE PBControlSync*(paramBlock: Files.ParmBlkPtr): Types.OSErr;
  251.     (*$IF NOT GENERATINGCFM*)
  252.     INLINE PASCAL $205F, $A004, $3E80;
  253.     (*$END*)
  254. PROCEDURE PBControlAsync*(paramBlock: Files.ParmBlkPtr): Types.OSErr;
  255.     (*$IF NOT GENERATINGCFM*)
  256.     INLINE PASCAL $205F, $A404, $3E80;
  257.     (*$END*)
  258. PROCEDURE PBControlImmed*(paramBlock: Files.ParmBlkPtr): Types.OSErr;
  259.     (*$IF NOT GENERATINGCFM*)
  260.     INLINE PASCAL $205F, $A204, $3E80;
  261.     (*$END*)
  262. PROCEDURE PBStatusSync*(paramBlock: Files.ParmBlkPtr): Types.OSErr;
  263.     (*$IF NOT GENERATINGCFM*)
  264.     INLINE PASCAL $205F, $A005, $3E80;
  265.     (*$END*)
  266. PROCEDURE PBStatusAsync*(paramBlock: Files.ParmBlkPtr): Types.OSErr;
  267.     (*$IF NOT GENERATINGCFM*)
  268.     INLINE PASCAL $205F, $A405, $3E80;
  269.     (*$END*)
  270. PROCEDURE PBStatusImmed*(paramBlock: Files.ParmBlkPtr): Types.OSErr;
  271.     (*$IF NOT GENERATINGCFM*)
  272.     INLINE PASCAL $205F, $A205, $3E80;
  273.     (*$END*)
  274. PROCEDURE PBKillIOSync*(paramBlock: Files.ParmBlkPtr): Types.OSErr;
  275.     (*$IF NOT GENERATINGCFM*)
  276.     INLINE PASCAL $205F, $A006, $3E80;
  277.     (*$END*)
  278. PROCEDURE PBKillIOAsync*(paramBlock: Files.ParmBlkPtr): Types.OSErr;
  279.     (*$IF NOT GENERATINGCFM*)
  280.     INLINE PASCAL $205F, $A406, $3E80;
  281.     (*$END*)
  282. PROCEDURE PBKillIOImmed*(paramBlock: Files.ParmBlkPtr): Types.OSErr;
  283.     (*$IF NOT GENERATINGCFM*)
  284.     INLINE PASCAL $205F, $A206, $3E80;
  285.     (*$END*)
  286. PROCEDURE OpenDeskAcc*(deskAccName: Types.ConstStr255Param): INTEGER;
  287.     (*$IF NOT GENERATINGCFM*)
  288.     INLINE PASCAL $A9B6;
  289.     (*$END*)
  290. PROCEDURE CloseDeskAcc*(refNum: INTEGER);
  291.     (*$IF NOT GENERATINGCFM*)
  292.     INLINE PASCAL $A9B7;
  293.     (*$END*)
  294. PROCEDURE PBControl*(paramBlock: Files.ParmBlkPtr; async: BOOLEAN): Types.OSErr;
  295.     EXTERNAL PASCAL;
  296. PROCEDURE PBStatus*(paramBlock: Files.ParmBlkPtr; async: BOOLEAN): Types.OSErr;
  297.     EXTERNAL PASCAL;
  298. PROCEDURE PBKillIO*(paramBlock: Files.ParmBlkPtr; async: BOOLEAN): Types.OSErr;
  299.     EXTERNAL PASCAL;
  300.  
  301. (* $ALIGN RESET*)
  302. (* $POP*)
  303.  
  304.  END Devices.
  305.